import Vue from 'vue'
import Vuex from 'vuex'

// 应用store插件
Vue.use(Vuex)

// 创建一个仓库
const store = new Vuex.Store({
  // 定义状态值
  state: {
    count: 1
  },

  // 同步状态更新
  mutations: {
    increment(state, num) {
      state.count += num
    },
    decrement(state, num) {
      state.count -= num
    }
  },

  // 异步状态更新
  actions: {
    asyncIncrement({ commit }, num) {
      setTimeout(() => {
        commit('increment', num)
      }, 1000);
    }
  },

  // getters：Store里的计算属性
  getters: {
    // doubleCount(state) {
    //   return state.count * 2
    // }
    doubleCount(state) {
      return (num) => {
        return state.count * num
      }
    }
  }
})

export default store